// #include <iostream>

// class Test
// {
// public:
//     Test()
//     {
//         std::cout<<"构造函数\n";
//     }

//     ~Test()
//     {
//         std::cout<<"析构函数\n";
//     }

//     void show()
//     {
//         std::cout<<"helloworld\n";
//     }
// };

// //RAII
// class SmartPoint //智能指针
// {
// public:
//     SmartPoint(Test *t):t(t){} //内存托管
//     ~SmartPoint()
//     {
//         delete t;
//     }
//     Test* operator->()
//     {
//         return t;
//     }
//     Test& operator*()
//     {
//         return *t;
//     }
// private:
//     Test *t;
// };

// int main()
// {
//     SmartPoint p(new Test);
//     p->show();
//     Test t = *p;
//     return 0;
// }